import axios from "axios";
const baseURL = 'https://nsfw.poshir.top/'

function ElMessage(info) {
    console.log(info);
}
// 开启loading
// 创建axios实例
const http = axios.create({
    baseURL, //配置了跨域,起了别名api,在baseBUL用了别名,这里使用baseURL,配置在下面vue.config.js
    timeout: 6000,
    withDirectives: true, // 是否携带cookies
});
// 请求拦截
http.interceptors.request.use(
    (config) => {
        // 在请求发送之前做一些处理 config是axios的配置对象
        // console.log(config);
        //  携带token
        // config.headers["Authorization"] ="Bearer " + JSON.parse(localStorage.getItem("remember_token")) || null;
        // 配置完成将config返回
        return config;
    },
    (err) => {
        // 当请求失败时做一些处理 抛出错误
        throw new Error(err);
    }
);

// 响应拦截
http.interceptors.response.use(
    (res) => {
        let { status, msg } = res.data;
        switch (status) {
            case 200:
                ElMessage({
                    showClose: true,
                    message: msg,
                    type: "success",
                });
                break;

            case 401:
                ElMessage({
                    showClose: true,
                    message: "未授权",
                    type: "error",
                });
                break;
        }
        return res.data;
    },
    (err) => {
        throw new Error(err);
    }
);

function request({ method = "get", url, data = {}, params = {} }) {
    return http({
        method,
        url,
        data,
        params,
    })
}

export default request